<?php
$action = $_POST['action'];
$table = $_POST['table'];

mysql_connect("localhost", "orsino", "szapo123") or die(mysql_error());
mysql_select_db("dbtables") or die(mysql_error());

switch ($action) {
	case"test":
//		$result = mysql_query('SELECT * FROM participants');
//		$fields = mysql_num_fields($result);
//		$rows   = mysql_num_rows($result);
//		$table  = mysql_field_table($result, 0);
//		$out = "";
//		for ($i=0; $i < $fields; $i++) {
//			$type  = mysql_field_type($result, $i);
//			$name  = mysql_field_name($result, $i);
//			$len   = mysql_field_len($result, $i);
//			$flags = mysql_field_flags($result, $i);
//			$out .=  $type . " " . $name . " " . $len . " " . $flags . "<bt>";
//		}
//		echo $out;
//		mysql_free_result($result);
//		mysql_close();
	$result = mysql_query("SHOW FIELDS FROM participants");

	$rows = array();
	// pobieranie informacji o każdym polu tabeli
	while ($row = mysql_fetch_array($result)) { 
		$rows[] = $row;
	}
	echo "<pre>",print_r($rows),"</pre>";exit;
	break;
	case"getdata":
		$fields = $_POST['fields'];
		$fe = json_decode($fields);
//		$primary_key = $_POST['pk']; // TODO - usunąć ręczne wyznaczanie PK
		$page = $_POST['page'];
		$order_col = $_POST['order_col'];
		$order_dir = $_POST['order_dir'];
		$offset = $page * $_POST['limit'];

		$result = mysql_query("SHOW FIELDS FROM ".$table);
		$columns = array();
		// pobieranie informacji o każdym polu tabeli
		while ($row = mysql_fetch_array($result)) {
			$columns[] = $row;
		}
		// iteracja przez tablicę z nazwami pól użytkownika
		// jeżeli nazwa pola występuje w tablicy z nazwami użytkownika -> dodanie do $rows pola [userName]
		$cols = array();
//		foreach($fe as $f){
//			$i = 0;
//			foreach($columns as &$r){
//				if($r['Field'] == $f->old)
//					$r['userName'] = $f->my;
//				// usuwanie pól oznaczonych 'none'
//				if(isset($r['userName']) && $r['userName'] == 'none')
////					unset($columns[$i]);
//					array_splice($columns,$i,1);
//				$i++;
//			}
//		}
		foreach($fe as $f){
			$i=0;
			foreach($columns as &$c){
				// wpisywanie kolejności do nowej tablicy cols
				if($c['Field'] == $f->old){
					// dopisanie do tablicy columns pola nazwy użytkownika
					$c['userName'] = $f->my;
					if(isset($c['userName']) && $c['userName'] == 'none'){

					}else{
						$cols[] = $c;
					}
					// usunięcie z pierwotnej tablicy rekordu z nadaną nazwą
					array_splice($columns,$i,1);
				}
				// usuwanie pól oznaczonych 'none'
				if(isset($c['userName']) && $c['userName'] == 'none')
					array_splice($columns,$i,1);
				$i++;
			}
		}
		$columns2 = array_merge($cols,$columns);
//		echo count($columns);exit;
//		echo print_r($columns2);exit;
//		echo "<pre>",print_r($rows),"</pre>";exit;
		$all = mysql_query("SELECT * FROM ".$table);
		$count = mysql_num_rows($all);

//		$qColumnNames = mysql_query("SHOW COLUMNS FROM ".$table);
//		$numColumns = mysql_num_rows($qColumnNames);
//		$x = 0;
//		while ($x < $numColumns) {
//			$colname = mysql_fetch_row($qColumnNames);
//			$column_names[$colname[0]] = $colname[0];
//			$x++;
//		}
//		$olds = array();
//		$news = array();
//		for($i=0;$i<count($fe);$i++){
//			$olds[] = $fe[$i]->old;
//			$news[$fe[$i]->old] = $fe[$i]->my;
//			$olds2[$fe[$i]->my] = $fe[$i]->old;
//		}

//		$temp = array_merge($column_names,$olds2);

//		$columns = array();
//		foreach($news as $k=>$v){
//			if(in_array($k,$column_names)){
//				$columns[$k] = $v;
//				unset($column_names[$v]);
//			}
//		}
//		foreach ($column_names as $c) {
//			if(!in_array($c,$olds))
//				$columns[$c] = $c;
//		}
//
//		foreach($columns as $k=>$v){
//			if($v == 'none')
//				unset($columns[$k]);
//		}
//		echo "<pre>",print_r($columns),"</pre>";exit;
		$sql = "SELECT * FROM ".$table." order by " . $order_col . " " . $order_dir . " limit " . $_POST['limit'] . " offset " . $offset . "";
		$result = mysql_query($sql)
				or die(mysql_error());
		$i = 0;
		$out = array();
		while ($row = mysql_fetch_array($result)) {
//			$out[$i]['Lp.'] = $i + $offset + 1;
			foreach($columns2 as $c){
				$out[$i][$c['Field']] = $row[$c['Field']];
			}

//			foreach ($columns as $v=>$k) {
//				if($k == $primary_key)
//					$output[$i]['pk'] = $row[$v];
//				else
//					$output[$i][$k] = $row[$v];
//			}
			$i++;
		}
//		echo print_r($out);exit;
//		echo "<pre>",print_r($output),"</pre>";exit;
		$data = array('count' => $count,'columns'=>$columns2, 'data' => $out);
		echo json_encode($data);
		break;
		case"updatedata":
			$id = $_POST['id'];
			$value = $_POST['value'];
			$pk = $_POST['pk'];
			$parts = explode('_|_',$id);
			$id_record = trim($parts[0]);
			$field = trim($parts[1]);
//			echo $id. " - " . $value;
			$sql = 'UPDATE '. $table .' SET `' . $field . "`='" . $value . "' WHERE " . $pk . "=" .$id_record;
			mysql_query($sql);
//			echo $sql;
		break;
}
?>